package es.indra.malaga.servicios.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;

import es.indra.malaga.dao.IAsignaturaDAO;
import es.indra.malaga.entity.AsignaturaBeanDAO;
import es.indra.malaga.servicios.IAsignaturaService;
import es.indra.malaga.viewBeans.AsignaturaView;

public class AsignaturaServiceImpl implements IAsignaturaService {

	private IAsignaturaDAO asignaturaDAO;

	public AsignaturaServiceImpl() {
	}

	public void actualizarAsignatura(AsignaturaView asignaturaEditar) {
		AsignaturaBeanDAO asignaturaBeanDAO = new AsignaturaBeanDAO();
		BeanUtils.copyProperties(asignaturaEditar, asignaturaBeanDAO);
		asignaturaDAO.modificar(asignaturaBeanDAO);
	}

	public List<AsignaturaView> getListadoAsignaturas() {
		List<AsignaturaView> listadoAsignaturasView = new ArrayList<AsignaturaView>();
		List<AsignaturaBeanDAO> listadoAsignaturasDAO = asignaturaDAO
				.listarTodos();

		for (AsignaturaBeanDAO asignaturaEntity : listadoAsignaturasDAO) {
			AsignaturaView asignaturaView = new AsignaturaView();
			BeanUtils.copyProperties(asignaturaEntity, asignaturaView);
			listadoAsignaturasView.add(asignaturaView);
		}

		return listadoAsignaturasView;
	}
	
	public AsignaturaView getAsignatura (Integer idAsignatura){
		AsignaturaView asignaturaView = new AsignaturaView();
		BeanUtils.copyProperties(asignaturaDAO.buscar(idAsignatura), asignaturaView);
		return asignaturaView;
	}

	public void saveAsignatura(AsignaturaView asignatura) {
		AsignaturaBeanDAO asignaturaEntity = new AsignaturaBeanDAO();
		BeanUtils.copyProperties(asignatura, asignaturaEntity);
		asignaturaDAO.insertar(asignaturaEntity);
	}

	public IAsignaturaDAO getAsignaturaDAO() {
		return asignaturaDAO;
	}

	public void setAsignaturaDAO(IAsignaturaDAO asignaturaDAO) {
		this.asignaturaDAO = asignaturaDAO;
	}

}
